package 课程设计报告_hb_7_5;

import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.junit.Test;

/**
 * @author Jiang Zhiyan
 *
 * 2021年7月5日 上午11:21:14
 *
 */
public class filterFilesTest {
  public List<File> filterFiles(File dir,String suff){
	  List <File> list = new ArrayList<File> ();
	  File [] files = dir.listFiles();
	  
//	  获得当前目录下符合条件的文件
	  File[] fileDatas = dir.listFiles(new FileFilter(){
		  @Override
		  public boolean accept(File f) {
			  return f.getName().endsWith(suff);
		  }
	  });
	  if(fileDatas != null&& fileDatas.length>0) {
		  Collections.addAll(list,fileDatas);
	  }
	  
//	  对当前目录中所有的子目录进行迭代
	  if(files != null && fileDatas.length>0) {
		  for(File f :files) {
			  if(f.isDirectory()) {
//				  执行操作
				  List<File> subFiles =  filterFiles(f,suff);
				  if(subFiles != null && subFiles.size()>0) {
					  list.addAll(subFiles);
				  }
			  }
		  }
	  }
	  return list;
  }
  @Test
  public void findAll() {
	  List <File> result =  filterFiles( new File ("C:\\Windows\\System32"),".txt");
	  for(File f :result) {
		  System.out.println(f);
	  }
  }
  
}
